Entities, such as software developers and/or vendors, provide software and services. Example software can include enterprise software. In some examples, enterprise software can include application software (an application) that interacts with one or more databases. For example, an application can be hosted on one or more application servers and a user can interact with the application using a client device. In some examples, user interaction can result in data being read from, written to, and/or modified within one or more databases.
Software can be developed in a multi-environment landscape (system) that can include, for example, multiple management tools. Example management tools can include, without limitation, a development system, a test system, and a production system. In some examples, an application is created and/or edited (e.g., configured) using the development system, and is tested using the test system. If the result of the test(s) is satisfactory, the application (or new configuration) can be loaded into the production system for use by users in a live setting.
Management tools can undergo one or more maintenance operations. Example maintenance operations include upgrading, configuring, patching, and testing. For example, if a new version of the management tools is created, each system within the landscape is sequentially upgraded to the new version during an upgrade procedure. During the upgrade procedure, changes to the system can be restricted to maintain persistency in data (e.g., data stored in a database, which the system interacts with). This is because changes made to a system while the system is undergoing an upgrade procedure are sometimes not migrated over to the upgraded system. This can result in, for example, data loss, data corruption, or unexpected behavior. To restrict changes from being made during an upgrade, the system is locked. While the system is locked there is a period of downtime, during which correction, customization, and/or development is blocked.